﻿
function ConvertirFecha(tdate) {

    var fecha = new Date(parseInt(tdate.substring(tdate.indexOf('(') + 1, tdate.indexOf(')'))))
    var yyyy = fecha.getFullYear().toString();
    var mm = (fecha.getMonth() + 1).toString(); // getMonth() is zero-based         
    var dd = fecha.getDate().toString();

    if (mm <= 9) { mm = "0" + mm };
    if (dd <= 9) { dd = "0" + dd };

    return (yyyy+"-"+mm+"-" + dd  );
};
function ObtenerHoras(tdate) {

    var fecha = new Date(parseInt(tdate.substring(tdate.indexOf('(') + 1, tdate.indexOf(')'))))
   
    var hora = fecha.getHours();
   
    if (hora <= 9) hora = "0" + hora;
    return hora;
};
function ObtenerMinutos(tdate) {

    var fecha = new Date(parseInt(tdate.substring(tdate.indexOf('(') + 1, tdate.indexOf(')'))))
    var minutos = fecha.getMinutes();

    if (minutos <= 9) minutos = "0" + minutos;
    return minutos;
};



var wsAddress = 'icoSPVentaWS.asmx/';

var WS = {
    ObtenerUsuarios:'ObtenerUsuarios', 
};





function ObtenerDatosWS(params, WS,funcion) {

        $.ajax({
        type: 'POST',
        crossDomain: true,
        url: wsAddress  + WS,
        data: JSON.stringify(params),
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: function (datos) {
            if (datos.d == 0) {
                //$.mobile.changePage("#pageone", { transition: 'pop', role: 'dialog' }); return;
            }
            try
            {
                eval(funcion + '(jQuery.parseJSON(datos.d))');
            }
            catch(err)
            {
                
                eval(funcion + '(datos.d)');
            }

        },
        error: AjaxError
        }); 
}
function InsertarDatosWs(params, WS) {
    $.ajax({
        type: 'POST',
        asyn:true,
        crossDomain: true,
        url: wsAddress + WS,
        data: JSON.stringify(params),
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: function (msg) {
            $("#errores").text(msg.d);
            $("#errores").addClass("errortext");
            return false;
        },
        error: AjaxError
    });

}
function ObtenerDatosWSsinParametros(WS, funcion) {
    $.ajax({
        type: 'POST',
        crossDomain: true,
        async: false,
        url: wsAddress + WS,
        data: '{}',
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: function (datos) {
            //if (datos.d == 0) {
            //    //$.mobile.changePage("#pageone", { transition: 'pop', role: 'dialog' }); return;
            //}
            
            try
            {
                eval(funcion + '(jQuery.parseJSON(datos.d))');
            }
            catch (err) {
                

                eval(funcion + '(datos.d)');
            }

        },
        error: AjaxError
    });
}
function AjaxError(result) {
    alert("ERROR " + result.status + ' ' + result.statusText);
}




//pagi home
$(document).bind("mobileinit", function () {
    $.support.cors = true;
    $.mobile.allowCrossDomainPages = true;
    $.mobile.pushStateEnabled = false;
});
$(document).ready(function () {
    $('#txt1').keypad();
    
});

function launchFullScreen(element) {
    if (element.requestFullScreen) {
        element.requestFullScreen();
    } else if (element.mozRequestFullScreen) {
        element.mozRequestFullScreen();
    } else if (element.webkitRequestFullScreen) {
        element.webkitRequestFullScreen();
    }
}

function mainmenu() {
    // Oculto los submenus
    $(" #nav ul ").css({ display: "none" });
    // Defino que submenus deben estar visibles cuando se pasa el mouse por encima
    $(" #nav li").hover(function () {
        $(this).find('ul:first:hidden').css({ visibility: "visible", display: "none" }).slideDown(400);
    }, function () {
        $(this).find('ul:first').slideUp(400);
    });
}
$(document).ready(function () {
    mainmenu();
});

var li = 1;
$(document).keydown(function (tecla) {

    if (tecla.keyCode == 38) {
        if (li-1 >= 1) {
        li--;
      
            $("#l" + (li+ 1)).removeClass("ui-body-b");
            $("#l" + (li+1)).addClass("ui-body-a");

            $("#l"+li).removeClass("ui-body-a"); //remove old them
            $("#l" + li).addClass("ui-body-b");
        }
    }
    if (tecla.keyCode == 40) {
        li++;
        
            $("#l" + (li - 1)).removeClass("ui-body-b");
            $("#l" + (li - 1)).addClass("ui-body-a");

            $("#l" + li).removeClass("ui-body-a"); //remove old them
            $("#l" + li).addClass("ui-body-b");
        
    }
    if (tecla.keyCode == 112) {
        AbrirVentanaPAgo();

    }
});
var fullscreenElement = document.fullScreenElement || document.mozFullScreenElement || document.webkitFullScreenElement;
var fullscreenEnabled = document.fullScreenEnabled || document.mozScreenEnabled || document.webkitScreenEnabled;


//pagina afanadora
$('#ventas').bind('pagebeforeshow',
            function () {

                var f = new Date();
                $('.pie').text("Bienvenido: usuario    "+f.getDate() + "/" + (f.getMonth() + 1) + "/" + f.getFullYear() + "   " + f.getHours() + ":" + f.getMinutes() + ":" + f.getSeconds());


                //launchFullScreen(document.getElementById("ventas"));

                
            });

function AbrirVentanaPAgo() {
    $.mobile.changePage("#pago", { transition: 'pop', role: 'dialog' });
}



var Catalogo = {

    Nombre:null,
    Oid:null,
};
var Usuario = {

    
    Oid: 1,
};
var Select = {
Oid:null,
}


function CrearPaginaCatalogo(Objeto) {

    Catalogo.Nombre = Objeto;
    $('#Catalago').remove();
    $('#body').append('<div data-role="page" id="Catalago">\
                        <div data-role="header" data-theme="b">\
                            <div data-role="navbar">\
                                    <ul>\
		                                <li><a href="#paghome" data-icon="home" data-iconpos="notext">Inicio</a></li>\
                                        <li><a href="javascript:AbrirDetalleCatalogo(-1);" data-icon="plus" data-ajax="false">Agregar</a></li>\
                                    </ul>\
                             </div>\
                           </div>\
                    <div data-role="content">\
                            <h1>'+Catalogo.Nombre+'</h1>\
                    <ul data-role="listview" id="ListaCatalogo" data-inset="true" data-filter="true" data-filter-placeholder="Busqueda...">\
	                </ul>\
	                </div>\
                <div data-role="footer" data-theme="b">\
                         <h1></h1>\
                </div>\
               </div> ');

    $.mobile.changePage("#Catalago");

    ObtenerDatosWSsinParametros(eval(Catalogo.Nombre + '.Obtener'), "CargaCatalogo");
}



function CargaCatalogo(Lista) {
    $('#ListaCatalogo').empty();
    $.each(Lista, function (i, item) {
        var Nombre =eval(Catalogo.Nombre+'.Campo');
        $('#ListaCatalogo').append('<li><a  href="javascript:AbrirDetalleCatalogo(' + Lista[i].OID + ');" data-rel="dialog">' + eval(Nombre) + '</a></li>').listview('refresh');
    });
}



function AbrirDetalleCatalogo(Oid) {

   
    Catalogo.Oid = Oid;
    $('#DetallesCatalogo').remove();
    $('#body').append('<div data-role="page" id="DetallesCatalogo">\
    <div data-role="header" data-theme="b">\
        <div data-role="navbar">\
       <ul>\
		    <li><a href="javascript:CrearPaginaCatalogo(\'' + Catalogo.Nombre + '\');" data-icon="home" data-iconpos="notext" id="btnGrabarCatalogo">Grabar</a></li>\
            <li><a href="javascript:CrearPaginaCatalogo(\'' + Catalogo.Nombre + '\');" data-icon="delete" data-ajax="false">Cancelar</a></li>\
       </ul>\
    </div>\
  </div>\
    <div data-role="content" id="ContenidoDetalleCatalogo">\
    <p id="errores"></p>\
    <h1 class="TituloDetallesCatalogo">' + Catalogo.Nombre + '</h1> \
  </div>\
  <div data-role="footer" data-theme="b">\
     <h1></h1>\
  </div>\
</div> ');

    

    var Controles=eval(Catalogo.Nombre + '.Controles();');
    $.each(Controles, function (i, item) {
        if (Controles[i].Tipo == 'select') {
            $('#ContenidoDetalleCatalogo').append('<div data-role="fieldcontain">\
   <label for="' + Controles[i].Id + '" class="select">' + Controles[i].NombreLabel + '</label>\
   <select name="Select" id="' + Controles[i].Id + '">\
   <option value="0">Seleccione una opcion</option>\
   </select>\
</div>');
            Select.Oid = Controles[i].Id;
            ObtenerDatosWSsinParametros(Controles[i].placeholder, "CargarSelect");
        }
        else {
            $('#ContenidoDetalleCatalogo').append(' <label id="lbl' + Controles[i].Id + '" for="' + Controles[i].Id + '">' + Controles[i].NombreLabel + '</label>\
                                           <input type="' + Controles[i].Tipo + '" id="' + Controles[i].Id + '" placeholder="' + Controles[i].placeholder + '">\
                                           ');
        }
    });

    

    

    //Cargar DETALLES
    if (Oid < 0) {

    }
    else {
        Datos = { Oid: Oid };
        
        ObtenerDatosWS(Datos, eval(Catalogo.Nombre + '.ObtenerObjeto'), 'CargarObjeto');
        $("#" + eval(Catalogo.Nombre + '.CampoUnico')).attr('readonly', true);
    }

    

    $.mobile.changePage("#DetallesCatalogo", { transition: 'pop', role: 'dialog' });

    $("#btnGrabarCatalogo").click(function (event) {
        // Grabar detalles
        

        if (Oid < 0) {
            //insrrta detalle
            var errores=eval(Catalogo.Nombre + '.Validar();');
            if (errores <= 0) {
                InsertarDatosWs(eval(Catalogo.Nombre + '.DatosInsertar();'), eval(Catalogo.Nombre + '.Insertar'));
            }
            else {
                $("#errores").text("Tienes " + errores + " errores, por favor llena todo los campos correctamente");
                $("#errores").addClass("errortext");
                return false;
            }
        }
        else {
            //actualzia detalle
            var errores = eval(Catalogo.Nombre + '.Validar();');
            if (errores <= 0) {
                InsertarDatosWs(eval(Catalogo.Nombre + '.DatosActualizar();'), eval(Catalogo.Nombre + '.Actualizar'));
            }
            else {
                $("#errores").text("Tienes " + errores + " errores, por favor llena todo los campos correctamente");
                $("#errores").addClass("errortext");
                return false;
            }
        }
        $('#Catalago').remove();

    });
    $("#" + eval(Catalogo.Nombre + '.CampoUnico')).change(function () {
        ObtenerDatosWS(eval(Catalogo.Nombre + '.DatosValidar();'), 'ValidarObjeto', 'ObjetoValidado');
    });
}
function ObjetoValidado(Respuesta) {
    if (Respuesta == 1) {
        $("#lbl" + eval(Catalogo.Nombre + '.CampoUnico')).text(eval(Catalogo.Nombre + '.CampoUnicoLabel') + "      *Ya existe un registro igual");
        $("#lbl" + eval(Catalogo.Nombre + '.CampoUnico')).addClass("errortext");
        $("#" + eval(Catalogo.Nombre + '.CampoUnico')).val("");
        $("#" + eval(Catalogo.Nombre + '.CampoUnico')).focus();
    }
    else {
        $("#lbl" + eval(Catalogo.Nombre + '.CampoUnico')).text(eval(Catalogo.Nombre + '.CampoUnicoLabel'));
        $("#lbl" + eval(Catalogo.Nombre + '.CampoUnico')).removeClass("errortext")
    }
}
var Usuarios= {
    Controles: function () {
        var Controles = new Array();
        Controles[0] = new Object(new Control('NombreUsuario', 'Nombre de Usuario', 'text', 'Ingrese el Nombre de Usuario'));
        Controles[1] = new Object(new Control('ContrasenaUsuario', 'Contraseña', 'password', 'Ingrese la Contraseña'));
        Controles[2] = new Object(new Control('ConfirmarContrasena', 'Repetir contraseña', 'password', 'Repetir Contraseña'));
        Controles[3] = new Object(new Control('Nombre', 'Nombre', 'text', 'Ingrese Nombre'));
        Controles[4] = new Object(new Control('Paterno', 'Apellido Paterno', 'text', 'Ingrese Apellido Paterno'));
        Controles[5] = new Object(new Control('Materno', 'Apellido Materno', 'text', 'Ingrese Apellido Materno'));
        Controles[6] = new Object(new Control('Ventas', 'Ventas', 'checkbox', ''));
        Controles[7] = new Object(new Control('Administrar', 'Administrar', 'checkbox', ''));
        Controles[8] = new Object(new Control('Reportes', 'Reportes', 'checkbox', ''));
        Controles[9] = new Object(new Control('Catalogos', 'Catalogos', 'checkbox', ''));
        Controles[10] = new Object(new Control('DeshacerVenta', 'Deshacer venta', 'checkbox', ''));
        Controles[11] = new Object(new Control('Consultas', 'Consultas', 'checkbox', ''));
        return Controles;
    },
    Obtener:'ObtenerUsuarios',
    Campo: "Lista[i].Nombre+' '+Lista[i].Paterno+' '+Lista[i].Materno",
    ObtenerObjeto: 'ObtenerUsuario',
    Insertar: 'InsertarUsuarios',
    DatosInsertar: function () {
        DatosInsertar={
         NombreUsuario : $('#NombreUsuario').val(),
         ContrasenaUsuario: $('#ContrasenaUsuario').val(),
        Nombre : $('#Nombre').val(),
        Paterno : $('#Paterno').val(),
        Materno : $('#Materno').val(),
        Ventas: $('#Ventas:checked').val(),
        Administrar: $('#Administrar:checked').val(),
        Reportes: $('#Reportes:checked').val(),
        Catalogos: $('#Catalogos:checked').val(),
        DeshacerVenta: $('#DeshacerVenta:checked').val(),
        Consultas: $('#Consultas:checked').val(),
        };
        if (DatosInsertar.Administrar == "on") DatosInsertar.Administrar = true; else DatosInsertar.Administrar = false;
        if (DatosInsertar.Ventas == "on") DatosInsertar.Ventas = true; else DatosInsertar.Ventas = false;
        if (DatosInsertar.Reportes == "on") DatosInsertar.Reportes = true; else DatosInsertar.Reportes = false;
        if (DatosInsertar.Catalogos == "on") DatosInsertar.Catalogos = true; else DatosInsertar.Catalogos = false;
        if (DatosInsertar.DeshacerVenta == "on") DatosInsertar.DeshacerVenta = true; else DatosInsertar.DeshacerVenta = false;
        if (DatosInsertar.Consultas == "on") DatosInsertar.Consultas = true; else DatosInsertar.Consultas = false;
        
        return DatosInsertar;
    },
    Validar: function () {
        var errores = 0;
         if ($('#ContrasenaUsuario').val() == "") {
            document.getElementById("ContrasenaUsuario").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("ContrasenaUsuario").style.border = "";
         }

         if ($('#ConfirmarContrasena').val() == "") {
             document.getElementById("ConfirmarContrasena").style.border = "3px solid red";
             errores++;
         }
         else {
             document.getElementById("ConfirmarContrasena").style.border = "";
         }

         if ($('#NombreUsuario').val() == "") {
             document.getElementById("NombreUsuario").style.border = "3px solid red";
             errores++;
         }
         else {
             document.getElementById("NombreUsuario").style.border = "";
         }

         if ($('#Nombre').val() == "") {
             document.getElementById("Nombre").style.border = "3px solid red";
             errores++;
         }
         else {
             document.getElementById("Nombre").style.border = "";
         }

         if ($('#Paterno').val() == "") {
             document.getElementById("Paterno").style.border = "3px solid red";
             errores++;
         }
         else {
             document.getElementById("Paterno").style.border = "";
         }
         if ($('#Materno').val() == "") {
             document.getElementById("Materno").style.border = "3px solid red";
             errores++;
         }
         else {
             document.getElementById("Materno").style.border = "";
         }

         if ($('#ContrasenaUsuario').val() != $('#ConfirmarContrasena').val()) {
             errores++;
             $("#lblContrasenaUsuario").text("Contraseña     *Las contraseñas no son iguales");
             $("#lblContrasenaUsuario").addClass("errortext");
         }
         else {
             $("#lblContrasenaUsuario").text("Contraseña");
             $("#lblContrasenaUsuario").removeClass("errortext")

         }
        return errores;
    },
    Actualizar: 'ActualizarUsuario',
    DatosActualizar: function () {
        DatosActualizar = {
            Oid: Catalogo.Oid,
            NombreUsuario: $('#NombreUsuario').val(),
            ContrasenaUsuario: $('#ContrasenaUsuario').val(),
            Nombre: $('#Nombre').val(),
            Paterno: $('#Paterno').val(),
            Materno: $('#Materno').val(),
            Ventas: $('#Ventas:checked').val(),
            Administrar: $('#Administrar:checked').val(),
            Reportes: $('#Reportes:checked').val(),
            Catalogos: $('#Catalogos:checked').val(),
            DeshacerVenta: $('#DeshacerVenta:checked').val(),
            Consultas: $('#Consultas:checked').val(),
        };
        if (DatosActualizar.Administrar == "on") DatosActualizar.Administrar = true; else DatosActualizar.Administrar = false;
        if (DatosActualizar.Ventas == "on") DatosActualizar.Ventas = true; else DatosActualizar.Ventas = false;
        if (DatosActualizar.Reportes == "on") DatosActualizar.Reportes = true; else DatosActualizar.Reportes = false;
        if (DatosActualizar.Catalogos == "on") DatosActualizar.Catalogos = true; else DatosActualizar.Catalogos = false;
        if (DatosActualizar.DeshacerVenta == "on") DatosActualizar.DeshacerVenta = true; else DatosActualizar.DeshacerVenta = false;
        if (DatosActualizar.Consultas == "on") DatosActualizar.Consultas = true; else DatosActualizar.Consultas = false;

        return DatosActualizar;
    },
    DatosValidar: function () {
        DatosValidar = {
            Tabla: 'Usuario',
            NombreCampo: 'NombreUsuario',
            Valor: $('#NombreUsuario').val(),
        };
        return DatosValidar;
        },
    CampoUnico: 'NombreUsuario',
    CampoUnicoLabel: 'Nombre de Usuario',
};

var Cajas = {
    Controles: function () {
        var Controles = new Array();
        Controles[0] = new Object(new Control('NumeroCaja', 'Numero de Caja', 'number', 'Ingrese Numero de Caja'));
        Controles[1] = new Object(new Control('Descripcion', 'Descripcion de Caja', 'text', 'Ingrese Descripcion de Caja'));
        Controles[2] = new Object(new Control('Disponible', 'Disponible', 'checkbox', ''));
        Controles[3] = new Object(new Control('Ticket', 'Ticket', 'checkbox', ''));

        return Controles;
    },
    Obtener: 'ObtenerCajas',
    Campo: 'Lista[i].Descripcion',
    ObtenerObjeto: 'ObtenerCaja',
    Insertar: 'InsertarCajas',
    DatosInsertar: function () {
        DatosInsertar = {
            NumeroCaja: $('#NumeroCaja').val(),
            Descripcion: $('#Descripcion').val(),
            Disponible: $('#Disponible:checked').val(),
            OidUsuario: Usuario.Oid,
            Ticket: $('#Ticket:checked').val(),
        };
        if (DatosInsertar.Disponible == "on") DatosInsertar.Disponible = true; else DatosInsertar.Disponible = false;
        if (DatosInsertar.Ticket == "on") DatosInsertar.Ticket = true; else DatosInsertar.Ticket = false;

        return DatosInsertar;
    },
    Validar: function () {
        var errores = 0;
        if ($('#NumeroCaja').val() == "") {
            document.getElementById("NumeroCaja").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("NumeroCaja").style.border = "";
        }

        if ($('#Descripcion').val() == "") {
            document.getElementById("Descripcion").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("Descripcion").style.border = "";
        }

        //if ($('#OidUsuario').val() == "") {
        //    document.getElementById("OidUsuario").style.border = "3px solid red";
        //    errores++;
        //}
        //else {
        //    document.getElementById("OidUsuario").style.border = "";
        //}
        
        return errores;
    },
    Actualizar: 'ActualizarCaja',
    DatosActualizar: function () {
        DatosActualizar = {
            Oid: Catalogo.Oid,
            NumeroCaja: $('#NumeroCaja').val(),
            Descripcion: $('#Descripcion').val(),
            Disponible: $('#Disponible:checked').val(),
            OidUsuario: Usuario.Oid,
            Ticket: $('#Ticket:checked').val(),
        };
        if (DatosActualizar.Disponible == "on") DatosActualizar.Disponible = true; else DatosActualizar.Disponible = false;
        if (DatosActualizar.Ticket == "on") DatosActualizar.Ticket = true; else DatosActualizar.Ticket = false;

        return DatosActualizar;
    },
    DatosValidar: function () {
        DatosValidar = {
            Tabla: 'CatCajas',
            NombreCampo: 'NumeroCaja',
            Valor: $('#NumeroCaja').val(),
        };
        return DatosValidar;
    },
    CampoUnico: 'NumeroCaja',
    CampoUnicoLabel: 'Numero de Caja',
};

var Clientes = {
    Controles: function () {
        var Controles = new Array();
        Controles[0] = new Object(new Control('Nombre', 'Nombre', 'text', 'Ingrese Nombre del Cliente'));
        Controles[1] = new Object(new Control('Paterno', 'Apellido Paterno', 'text', 'Ingrese Apellido Paterno'));
        Controles[2] = new Object(new Control('Materno', 'Apellido Materno', 'text', 'Ingrese Apellido Materno'));
        Controles[3] = new Object(new Control('Direccion', 'Direccion', 'text', 'Ingrese Direccion'));
        Controles[4] = new Object(new Control('Telefono', 'Telefono', 'number', 'Ingrese Telefono'));
        Controles[5] = new Object(new Control('CorreoElectronico', 'CorreoElectronico', 'text', 'Ingrese Correo Electronico'));
        Controles[6] = new Object(new Control('OidTipoDeVenta', 'Tipo de venta', 'select', 'ObtenerTipoDeVentas'));
        return Controles;
    },
    Obtener: 'ObtenerClientes',
    Campo: "Lista[i].Nombre+' '+Lista[i].Paterno+' '+Lista[i].Materno",
    ObtenerObjeto: 'ObtenerCliente',
    Insertar: 'InsertarCliente',
    DatosInsertar: function () {
        DatosInsertar = {
            Nombre: $('#Nombre').val(),
            Paterno: $('#Paterno').val(),
            Materno: $('#Materno').val(),
            Direccion: $('#Direccion').val(),
            Telefono: $('#Telefono').val(),
            CorreoElectronico: $('#CorreoElectronico').val(),
            OidTipoDeVenta: $('#OidTipoDeVenta').val(),
        };

        return DatosInsertar;
    },
    Validar: function () {
        var errores = 0;
        if ($('#Nombre').val() == "") {
            document.getElementById("Nombre").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("Nombre").style.border = "";
        }

        if ($('#Paterno').val() == "") {
            document.getElementById("Paterno").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("Paterno").style.border = "";
        }

        if ($('#Materno').val() == "") {
            document.getElementById("Materno").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("Materno").style.border = "";
        }

        if ($('#Direccion').val() == "") {
            document.getElementById("Direccion").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("Direccion").style.border = "";
        }

        if ($('#Telefono').val() == "") {
            document.getElementById("Telefono").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("Telefono").style.border = "";
        }

        if ($('#CorreoElectronico').val() == "") {
            document.getElementById("CorreoElectronico").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("CorreoElectronico").style.border = "";
        }
        if ($('#OidTipoDeVenta').val() == 0) {
            document.getElementById("OidTipoDeVenta").style.border = "3px solid red";
            errores++;
        } else {
            document.getElementById("OidTipoDeVenta").style.border = "";
        }
        return errores;
    },
    Actualizar: 'ActualizarCliente',
    DatosActualizar: function () {
        DatosActualizar = {
            Oid: Catalogo.Oid,
            Nombre: $('#Nombre').val(),
            Paterno: $('#Paterno').val(),
            Materno: $('#Materno').val(),
            Direccion: $('#Direccion').val(),
            Telefono: $('#Telefono').val(),
            CorreoElectronico: $('#CorreoElectronico').val(),
            OidTipoDeVenta: $('#OidTipoDeVenta').val(),
        };

        return DatosActualizar;
    },
    DatosValidar: function () {
        DatosValidar = {
            Tabla: 'CatClientes',
            NombreCampo: 'Nombre',
            Valor: $('#Nombre').val(),
        };
        return DatosValidar;
        },
    CampoUnico: 'Nombre',
    CampoUnicoLabel: 'Nombre',
};

var Departamentos = {
    Controles: function () {
        var Controles = new Array();
        Controles[0] = new Object(new Control('Descripcion', 'Descripcion del Departamento', 'text', 'Ingrese Descripcion del Departamento'));

        return Controles;
    },
    Obtener: 'ObtenerDepartamentos',
    Campo: 'Lista[i].Descripcion',
    ObtenerObjeto: 'ObtenerDepartamento',
    Insertar: 'InsertarDepartamento',
    DatosInsertar: function () {
        DatosInsertar = {
            Descripcion: $('#Descripcion').val(),
        };
        
        return DatosInsertar;
    },
    Validar: function () {
        var errores = 0;
        if ($('#Descripcion').val() == "") {
            document.getElementById("Descripcion").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("Descripcion").style.border = "";
        }
        
        return errores;
    },
    Actualizar: 'ActualizarDepartamento',
    DatosActualizar: function () {
        DatosActualizar = {
            Oid: Catalogo.Oid,
            Descripcion: $('#Descripcion').val(),
        };

        return DatosActualizar;
    },
    DatosValidar: function () {
        DatosValidar = {
            Tabla: 'CatDepartamento',
            NombreCampo: 'Descripcion',
            Valor: $('#Descripcion').val(),
        };
        return DatosValidar;
    },
    CampoUnico: 'Descripcion',
    CampoUnicoLabel: 'Descripcion del Departamento',
};

var Productos = {
    Controles: function () {
        var Controles = new Array();
        Controles[0] = new Object(new Control('CodigoProducto', 'Codigo del Producto', 'number', 'Ingrese Codigo del Producto'));
        Controles[1] = new Object(new Control('Descripcion', 'Descripcion del Producto', 'text', 'Ingrese Descripcion del Producto'));
        Controles[2] = new Object(new Control('Cantidad', 'Cantidad', 'number', 'Ingrese Cantidad'));
        Controles[3] = new Object(new Control('OidDepartamento', 'Departamento', 'select', 'ObtenerDepartamentos'));
        Controles[4] = new Object(new Control('PrecioUnitarioCompra', 'Precio Unitario de Compra', 'number', 'Ingrese Precio Unitario de Compra'));
        Controles[5] = new Object(new Control('PrecioUnitarioVenta', 'Precio Unitario de Venta', 'number', 'Ingrese Precio Unitario de Venta'));
        Controles[6] = new Object(new Control('CantidadMinima', 'Cantidad Minima', 'number', 'Ingrese Cantidad Minima'));
        Controles[7] = new Object(new Control('IVA', 'IVA', 'number', 'Ingrese IVA'));
        Controles[8] = new Object(new Control('PrecioUnitarioMayoreo', 'Precio Unitario de Mayoreo', 'number', 'Ingrese Precio Unitario de Mayoreo'));
        Controles[9] = new Object(new Control('OidUnidadMedida', 'Unidad Medida', 'select', 'ObtenerUnidadMedidas'));

        return Controles;
    },
    Obtener: 'ObtenerProductos',
    Campo: "Lista[i].CodigoProducto+' '+Lista[i].Descripcion",
    ObtenerObjeto: 'ObtenerProducto',
    Insertar: 'InsertarProducto',
    DatosInsertar: function () {
        DatosInsertar = {
            CodigoProducto: $('#CodigoProducto').val(),
            Descripcion: $('#Descripcion').val(),
            Cantidad: $('#Cantidad').val(),
            PrecioUnitarioCompra: $('#PrecioUnitarioCompra').val(),
            PrecioUnitarioVenta: $('#PrecioUnitarioVenta').val(),
            CantidadMinima: $('#CantidadMinima').val(),
            IVA: $('#IVA').val(),
            PrecioUnitarioMayoreo: $('#PrecioUnitarioMayoreo').val(),
            OidUnidadMedida: $('#OidUnidadMedida').val(),
            OidDepartamento: $('#OidDepartamento').val(),
        };

        return DatosInsertar;
    },
    Validar: function () {
        var errores = 0;
        if ($('#CodigoProducto').val() == "") {
            document.getElementById("CodigoProducto").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("CodigoProducto").style.border = "";
        }

        if ($('#Descripcion').val() == "") {
            document.getElementById("Descripcion").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("Descripcion").style.border = "";
        }

        if ($('#Cantidad').val() == "") {
            document.getElementById("Cantidad").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("Cantidad").style.border = "";
        }

        if ($('#PrecioUnitarioCompra').val() == "") {
            document.getElementById("PrecioUnitarioCompra").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("PrecioUnitarioCompra").style.border = "";
        }

        if ($('#PrecioUnitarioVenta').val() == "") {
            document.getElementById("PrecioUnitarioVenta").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("PrecioUnitarioVenta").style.border = "";
        }

        if ($('#CantidadMinima').val() == "") {
            document.getElementById("CantidadMinima").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("CantidadMinima").style.border = "";
        }

        if ($('#IVA').val() == "") {
            document.getElementById("IVA").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("IVA").style.border = "";
        }

        if ($('#PrecioUnitarioMayoreo').val() == "") {
            document.getElementById("PrecioUnitarioMayoreo").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("PrecioUnitarioMayoreo").style.border = "";
        }
        if ($('#OidDepartamento').val() == 0) {
            document.getElementById("OidDepartamento").style.border = "3px solid red";
            errores++;
        } else {
            document.getElementById("OidDepartamento").style.border = "";
        }
        if ($('#OidUnidadMedida').val() == 0) {
            document.getElementById("OidUnidadMedida").style.border = "3px solid red";
            errores++;
        } else {
            document.getElementById("OidUnidadMedida").style.border = "";
        }

        return errores;
    },
    Actualizar: 'ActualizarProducto',
    DatosActualizar: function () {
        DatosActualizar = {
            Oid: Catalogo.Oid,
            CodigoProducto: $('#CodigoProducto').val(),

            Descripcion: $('#Descripcion').val(),
            Cantidad: $('#Cantidad').val(),
            PrecioUnitarioCompra: $('#PrecioUnitarioCompra').val(),
            PrecioUnitarioVenta: $('#PrecioUnitarioVenta').val(),
            CantidadMinima: $('#CantidadMinima').val(),
            IVA: $('#IVA').val(),
            PrecioUnitarioMayoreo: $('#PrecioUnitarioMayoreo').val(),
            OidUnidadMedida: $('#OidUnidadMedida').val(),
            OidDepartamento: $('#OidDepartamento').val(),
        };

        return DatosActualizar;
    },
    DatosValidar: function () {
        DatosValidar = {
            Tabla: 'CatProductos',
            NombreCampo: 'CodigoProducto',
            Valor: $('#CodigoProducto').val(),
        };
        return DatosValidar;
    },
    CampoUnico: 'CodigoProducto',
    CampoUnicoLabel: 'Codigo del Producto',
};

var TipoDeVenta = {
    Controles: function () {
        var Controles = new Array();
        Controles[0] = new Object(new Control('Descripcion', 'Descripcion del Tipo de Venta', 'text', 'Ingrese Descripcion del Tipo de Venta'));

        return Controles;
    },
    Obtener: 'ObtenerTipoDeVentas',
    Campo: 'Lista[i].Descripcion',
    ObtenerObjeto: 'ObtenerTipoDeVenta',
    Insertar: 'InsertarTipoDeVenta',
    DatosInsertar: function () {
        DatosInsertar = {
            Descripcion: $('#Descripcion').val(),
        };

        return DatosInsertar;
    },
    Validar: function () {
        var errores = 0;
        if ($('#Descripcion').val() == "") {
            document.getElementById("Descripcion").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("Descripcion").style.border = "";
        }

        return errores;
    },
    Actualizar: 'ActualizarTipoDeVenta',
    DatosActualizar: function () {
        DatosActualizar = {
            Oid: Catalogo.Oid,
            Descripcion: $('#Descripcion').val(),
        };

        return DatosActualizar;
    },
    DatosValidar: function () {
        DatosValidar = {
            Tabla: 'CatTipoDeVenta',
            NombreCampo: 'Descripcion',
            Valor: $('#Descripcion').val(),
        };
        return DatosValidar;
    },
    CampoUnico: 'Descripcion',
    CampoUnicoLabel: 'Descripcion del Tipo de Venta',
};

var UnidadMedida = {
    Controles: function () {
        var Controles = new Array();
        Controles[0] = new Object(new Control('Descripcion', 'Descripcion de Unidad de Medida', 'text', 'Ingrese Descripcion de Unidad de Medida'));

        return Controles;
    },
    Obtener: 'ObtenerUnidadMedidas',
    Campo: 'Lista[i].Descripcion',
    ObtenerObjeto: 'ObtenerUnidadMedida',
    Insertar: 'InsertarUnidadMedida',
    DatosInsertar: function () {
        DatosInsertar = {
            Descripcion: $('#Descripcion').val(),
        };

        return DatosInsertar;
    },
    Validar: function () {
        var errores = 0;
        if ($('#Descripcion').val() == "") {
            document.getElementById("Descripcion").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("Descripcion").style.border = "";
        }

        return errores;
    },
    Actualizar: 'ActualizarUnidadMedida',
    DatosActualizar: function () {
        DatosActualizar = {
            Oid: Catalogo.Oid,
            Descripcion: $('#Descripcion').val(),
        };

        return DatosActualizar;
    },
    DatosValidar: function () {
        DatosValidar = {
            Tabla: 'CatUnidadMedida',
            NombreCampo: 'Descripcion',
            Valor: $('#Descripcion').val(),
        };
        return DatosValidar;
    },
    CampoUnico: 'Descripcion',
    CampoUnicoLabel: 'Descripcion de Unidad de Medida',
};

var TipoDePago = {
    Controles: function () {
        var Controles = new Array();
        Controles[0] = new Object(new Control('Descripcion', 'Descripcion', 'text', 'Ingrese Descripcion del Tipo de Pago'));

        return Controles;
    },
    Obtener: 'ObtenerTipoPagos',
    Campo: 'Lista[i].Descripcion',
    ObtenerObjeto: 'ObtenerTipoPago',
    Insertar: 'InsertarTipoPago',
    DatosInsertar: function () {
        DatosInsertar = {
            Descripcion: $('#Descripcion').val(),
        };

        return DatosInsertar;
    },
    Validar: function () {
        var errores = 0;

        if ($('#Descripcion').val() == "") {
            document.getElementById("Descripcion").style.border = "3px solid red";
            errores++;
        }
        else {
            document.getElementById("Descripcion").style.border = "";
        }

        return errores;
    },
    Actualizar: 'ActualizarTipoPago',
    DatosActualizar: function () {
        DatosActualizar = {
            Oid: Catalogo.Oid,
            Descripcion: $('#Descripcion').val(),
        };

        return DatosActualizar;
    },
    DatosValidar: function () {
        DatosValidar = {
            Tabla: 'CatTipoPago',
            NombreCampo: 'Descripcion',
            Valor: $('#Descripcion').val(),
        };
        return DatosValidar;
    },
    CampoUnico: 'Descripcion',
    CampoUnicoLabel: 'Descripcion',
};

function Control(Id, NombreLabel, Tipo, placeholder) {

    this.Id = Id;
    this.NombreLabel = NombreLabel;
    this.Tipo = Tipo;
    this.placeholder = placeholder;

}
function CargarObjeto(Objeto) {
    var propiedades = Object.getOwnPropertyNames(Objeto[0]);

    


    $.each(propiedades, function (i, item) {
        var valor = "Objeto[0]." + propiedades[i];
        if (typeof (eval(valor)) == "boolean") {

            $('#' + propiedades[i]).prop("checked", eval(valor)).checkboxradio("refresh");
        }
        else {

            
            $('#' + propiedades[i]).val(eval(valor));
            if ($('#' + propiedades[i]).attr("name")=="Select")
            {
                $('#' + propiedades[i]).val(eval(valor));
         
                $('#' + propiedades[i]).change();
            }

        }
    });

    //if (Catalogo.Nombre == "Usuarios") {
    //    $('#Contrasena').remove();
    //    $('#ConfirmarContrasena').remove();
    //    $('#lblContrasena').remove();
    //    $('#lblConfirmarContrasena').remove();
        
    //}
}

function CargarSelect(Objeto) {
    


    $.each(Objeto, function (i, item) {

             $('#'+Select.Oid).append('<option value="'+Objeto[i].OID+'">'+Objeto[i].Descripcion+'</option>');
    });
}